---------------------------------------------------------------------- | README-DATEI zu INFORMIX(SINIX) V4.0 ESQL/C | | U3518-J-Z95-3 Ausgabe: Oktober 1990 | ---------------------------------------------------------------------- Inhaltsverzeichnis ------------------ INFORMIX(SINIX) V4.0 ESQL/C U3518-J-Z95-3 Ausgabe: Oktober 1990 Ergaenzung: $typedef- und $struct-Vereinbarungen in $include-Dateien................................. Seite 2 Korrektur: Einbindung von Include-Dateien in ein ESQL/C- Programm.......................................... Seite 3 INFORMIX(SINIX) V4.0 ESQL/C U3518-J-Z95-3 Ausgabe: Oktober 1990 ====================================================================== Ergaenzung: $typedef- und $struct-Vereinbarungen in $include-Dateien Bei typedef- bzw. struct-Vereinbarungen in $include-Dateien muessen diese Vereinbarungen mit einem vorangestellten $ umschrieben werden, da der ESQL/C-Compiler diese Vereinbarungen sonst nicht erkennt. INFORMIX(SINIX) V4.0 ESQL/C U3518-J-Z95-3 Ausgabe: Oktober 1990 ====================================================================== Korrektur: Einbindung von Include-Dateien in ein ESQL/C- Programm (Seite 3-8) Alle Header-Dateien muessen nur mit $INCLUDE name, also ohne das Suffix .h eingebunden werden. ---------------------------------------------------------------------- | README-DATEI zu INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung | | U6492-J-Z95-1 Ausgabe: Oktober 1990 | ---------------------------------------------------------------------- Inhaltsverzeichnis ------------------ INFORMIX(SINIX) V4.0 SQL-Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 Korrektur: Beispiel fuer den Datentyp DATETIME............... Seite 2 Korrektur: Beispiele fuer den Datentyp FLOAT................. Seite 3 Ergaenzung: Hinweis Datentyp VARCHAR......................... Seite 3 Ergaenzung: Funktion USER.................................... Seite 4 Korrektur: Anweisung BEGIN WORK.............................. Seite 5 Einschraenkung: Anweisung CREATE DATABASE.................... Seite 6 Hinweis: Anweisung CREATE TABLE.............................. Seite 7 Hinweis: Anweisung DECLARE CURSOR WITH HOLD.................. Seite 8 Einschraenkung: Anweisung DELETE............................. Seite 9 Einschraenkung: Anweisung DROP DATABASE...................... Seite 10 Einschraenkung: Delimiter bei den Dienstprogrammen LOAD und UNLOAD....................................... Seite 11 Korrektur: Syntax der Anweisung UPDATE....................... Seite 12 Korrektur: Umgebungsvariable DBPATH.......................... Seite 13 Korrektur: Behandlung der NULL-Werte bei logischen Operatoren Seite 14 INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Korrektur: Beispiel fuer den Datentyp DATETIME (Seite 4-50) Die Beispiele fuer fehlende Werte fuer den Datentyp DATETIME auf der Seite 4-50 sind falsch. Sie muessen korrekt folgendermassen lauten: - Fehlen Werte am Anfang, werden die entsprechenden Werte des aktuellen Datums bzw. der aktuellen Uhrzeit eingesetzt. Beispiel: Bei der Definition einer Spalte mit DATETIME YEAR TO DAY ist bei einem Insert (12-30 MONTH TO DAY) das Jahr nicht angegeben. Es wird automatisch das aktuelle Jahr einge- tragen. - Fehlen Werte am Ende, werden Konstanten eingetragen, und zwar 1 bei Monat und Tag, 0 bei allen anderen Komponenten. Beispiel: Bei der Definition einer Spalte mit DATETIME HOUR TO SECOND sind bei einem Insert (22:45 HOUR TO MINUTE) die Sekunden nicht angegeben. Es wird automatisch fuer Sekunde der Wert 0 eingetragen. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Korrektur: Beispiele fuer den Datentyp FLOAT (Seite 4-19) Die Beispiele fuer den Datentyp FLOAT auf der Seite 4-19 sind falsch, da sie den definierten Wertebereich ueber- schreiten. Korrigiert muessen sie folgendermassen lauten: INSERT INTO versuch3 VALUES (34E20) INSERT INTO versuch3 VALUES (0.5E-31) Hinweis:Datentyp VARCHAR (Seite 4-7) Der Speicherplatzbedarf beim Datentyp VARCHAR haengt von der maxi- mal angegebenen Laenge ab, nicht von dem aktuell belegten Inhalt. Beim Einfuegen von Saetzen, die Felder variabler Laenge enthalten, wird die Seite als voll angesehen, wenn fuer einen weiteren Satz von maximaler Laenge kein Platz mehr vorhanden ist. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Ergaenzung: Funktion USER (Seite 5-30) Die Funktion USER wird von INFORMIX-4GL nicht unterstuetzt. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Korrektur: Anweisung BEGIN WORK (Seite 6-31) Im ersten Abschnitt der Anweisungsbeschreibung muss es heissen: BEGIN WORK fuehrt zu einem Fehler, wenn bereits eine Transaktion eroeffnet ist. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Einschraenkung: Anweisung CREATE DATABASE (Seite 6-45) Bei einer SE-Datenbank mit Transaktionsprotokoll darf nur noch der Benutzer informix das Transaktionsprotokoll aendern oder loeschen. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Hinweis: Anweisung CREATE TABLE (Seite 6-63) Bei der Erzeugung temporaerer Tabellen koennen keine CONSTRAINTS vergeben werden. Die folgende Anweisung fuehrt zu einem Fehler: CREATE TEMP TABLE tabelle(spalte_1 datentyp, ... spalte_n datentyp UNIQUE (spalte_n) CONSTRAINT constrname) INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Hinweis: Anweisung DECLARE CURSOR WITH HOLD (Seite 6-83) Unterschiedliches Verhalten bei UPDATE mit einem CURSOR WITH HOLD bei SE und ONLINE in einer Transaktion: SE: Nach Beendigung der Transaktion durch ROLLBACK oder COMMIT WORK koennen andere Benutzer auf die geaenderten Saetze nicht zu- greifen, solange der bearbeitende Satzzeiger noch nicht explizit geschlossen wurde. ONLINE: Nach Beendigung der Transaktion mit ROLLBACK oder COMMIT WORK koennen andere Benutzer problemlos auf die geaenderten Saetze zugreifen. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Einschraenkung: Anweisung DELETE (Seite 6-89) Wenn zwei Transaktionen gleichzeitig Saetze in eine indizierte Ta- belle einfuegen, kann es beim Loeschen zu Sperrkonflikten kommen, weil beim INSERT jeweils der naechsthoehere Indexwert gesperrt wird. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Einschraenkung: Anweisung DROP DATABASE (Seite 6-97) Die Anweisung DROP DATABASE loescht nur das jeweils aktuelle Transaktions- oder Auditprotokoll. Die Anweisung DROP DATABASE sollte nicht innerhalb einer Transaktion verwendet werden, weil das Zuruecksetzen mittels ROLLBACK WORK nicht moeglich ist. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Einschraenkung: Delimiter bei den Dienstprogrammen LOAD und UNLOAD (Ergaenzungsband Seite 10). Die im Ergaenzungsband auf Seite 10 angegebenen Beschraenkungen bei der Vereinbarung von Delimitern fuer die Dienstprogramme LOAD und UNLOAD gelten fuer alle Datentypen. Bei der Definition von Delimitern ueber DBDELIMITER sollten moegliche Konflikte mit den Datenwerten beachtet werden, z.B. darf kein Komma (,) verwendet werden, wenn MONEY-Felder enthalten sind. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Korrektur: Syntax der Anweisung UPDATE (Seite 6-228) Bei Verwendung einer eingebetteten SELECT-Anweisung in einer UPDATE-Anweisung muss die SELECT-Anweisung in doppelten runden Klammern stehen. UPDATE tabelle SET (spaltenname,...)=((select-anweisung)) INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Korrektur: Umgebungsvariable DBPATH (Seite A-27) Beim Aufruf von Informix mit Datenbankangabe wird die Umgebungs- variable DBPATH nicht ausgewertet. INFORMIX(SINIX) V4.0 SQL Sprachbeschreibung U6492-J-Z95-1 Ausgabe: Oktober 1990 ====================================================================== Korrektur: Behandlung der NULL-Werte bei logischen Operatoren (Seite 5-59) Fuer die Behandlung der NULL-Werte bei logischen Operatoren gilt: AND: NULL-Wert, wenn ein Operand wahr und ein Operand der NULL-Wert ist; NULL-Wert, wenn beide Operanden Null sind; Wahr, wenn beide Operanden wahr sind; Falsch, wenn wenigstens ein Operand falsch ist; OR : NULL-Wert, wenn einer der Operanden der NULL-Wert und der andere falsch ist; NULL-Wert, wenn beide Operanden NULL sind; Wahr, wenn wenigstens ein Operand wahr ist; Falsch, wenn beide Operanden falsch sind.